﻿namespace net.zxteam.ZXLexer.Rules
{
	using net.zxteam.ZXLexer.Tokens;

	public interface IRuleVisitor
	{
		IAstToken VisitAstRule(IAstRule astRule);
		ICardinalToken VisitCardinalRule(ICardinalRule cardinalRule);
		ICharRangeToken VisitCharRangeRule(ICharRangeRule charRangeToken);
		ICharToken VisitCharRule(ICharRule ruleChar);
		IChoiceToken VisitChoiceRule(IChoiceRule choiceRule);
		IIndentToken VisitIndentRule(IIndentRule indentRule);
		ISequenceToken VisitSequenceRule(ISequenceRule sequenceToken);
		IStringToken VisitStringRule(IStringRule stringToken);
	}
}
